package com.zbkj.common.model.bte;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 银企退款实体
 *
 * @author Swallows
 * @date 2022-11-14 09:24
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@ToString(callSuper = true)
@JsonInclude(JsonInclude.Include.NON_NULL)
public class Refund implements Serializable {

    private static final long serialVersionUID=1L;

    /**
     * 订单号 本系统自己生成的(必传)
     */
    @JsonProperty("out_trade_no")
    private String outTradeNo;

    /**
     * 聚合收单平台的订单号 和outTradeNo 二选一必传
     */
    @JsonProperty("trade_no")
    private String tradeNo;

    /**
     * 退款订单号 本系统自己生成 必填
     */
    @JsonProperty("out_refund_no")
    private String outRefundNo;

    /**
     * 退款金额 不填写视为全额退款
     */
    @JsonProperty("refund_fee")
    private String refundFee;

    /**
     * 退款原因 必填
     */
    @JsonProperty("refund_reason")
    private String refundReason;

    /**
     * 退款手续费
     */
    @JsonProperty("refund_merchant_fee")
    private BigDecimal refundMerchantFee;

    /**
     * 退款补贴金
     */
    @JsonProperty("refund_subsidy")
    private BigDecimal refundSubsidy;

    /**
     * 退款成功后的通知地址
     */
    @JsonProperty("refund_notify_url")
    private String refundNotifyUrl;

    private String sign;
}
